
if(token.Matches(_("a*")))
{
    if(token.Matches(_("a"))&&(T.GetCount()==5)) IsNotExtFunc = !I[iNum].add(eA(mP(calc(T[0]),calc(T[1])),calc(T[2]),calc(T[3]),calc(T[4])));
    else if(token.Matches(_("arc"))&&(T.GetCount()==5)) IsNotExtFunc = !I[iNum].add(eA(mP(calc(T[0]),calc(T[1])),calc(T[2])*DegToRad,calc(T[3])*DegToRad,calc(T[4])));
}
else if(token.Matches(_("b*")))
{
    if(T.GetCount()==4 && token.Matches(_("box"))) IsNotExtFunc = !I[iNum].Box(mP(calc(T[0]), calc(T[1])),mP(calc(T[2]),calc(T[3])));
}
else if(token.Matches(_("c_*")))                //create chains or to existing
{
}
else if(token.Matches(_("c*")))
{
    if(T.Count()==3 && token.Matches(_("c"))) IsNotExtFunc = !I[iNum].add( eC(mP(calc(T[0]),calc(T[1])),calc(T[2])));
    else if(T.Count()==3 && token.Matches(_("circle"))) IsNotExtFunc = !I[iNum].add( eC(mP(calc(T[0]),calc(T[1])),calc(T[2])));
    else if(T.Count()==0 && token.Matches(_("clear")))  IsNotExtFunc = !I[iNum].Clear();
    else if(T.Count()==0 && token.Matches(_("chain")))  IsNotExtFunc = !I[iNum].MakeChain();
}

else if(token.Matches(_("g*")))
{
}

else if(token.Matches(_("e*")))
{
    #include "e.h"
    #include "end.h"
    if(T.Count()==2 && token.Matches(_("eswap")))  IsNotExtFunc = I[iNum].Swap( (uint)calc(T[0]) , (uint)calc(T[1]) );
}
else if(token.Matches(_("h*")))
{
    #include "home.h"
}
else if(token.Matches(_("i_*")))
{
    #include "image/i_bhc.h"                  //Draw to bolthole to image
    #include "image/i_copy.h"
    #include "image/i_copy_s.h"
    #include "image/i_drill_draw.h"
    #include "image/i_mirrorx.h"
    #include "image/i_paste.h"
    #include "image/i_text.h"
}
else if(token.Matches(_("i*")))
{
    #include "system/i.h"
}
else if(token.Matches(_("l*")))
{
    if(T.Count()==4 && token.Matches(_("l"))) IsNotExtFunc =  !I[iNum].add(eL( mP(   calc(T[0]) , calc(T[1]) ) , mP( calc(T[2]), calc(T[3]))));
    else if(T.Count()==4 && token.Matches(_("line"))) IsNotExtFunc =  !I[iNum].add(eL( mP(   calc(T[0]) , calc(T[1]) ) , mP( calc(T[2]), calc(T[3]))));
}
else if(token.Matches(_("m*")))
{
    if(T.Count()==2 && token.Matches(_("move"))) IsNotExtFunc =  I[iNum].Move(mP(  calc(T[0]),calc(T[1])));
    else if(T.Count()==3 && token.Matches(_("move"))) IsNotExtFunc =  I[iNum].Move(mP(  calc(T[0]),calc(T[1]), calc(T[2])   ));
    else if(T.Count()==2 && token.Matches(_("move_s"))) IsNotExtFunc =  I[iNum].MoveSelected(mP(calc(T[0]) , calc(T[1])));

    #include "machine/m_g54.h"
    #include "machine/m_g55.h"
    #include "machine/m_g56.h"
    #include "machine/m_g57.h"
    #include "machine/m_g58.h"
    #include "machine/m_g59.h"
}


else if(token.Matches(_("o*")))
{
}
else if(token.Matches(_("p_*")))
{
    #include "print/p_boltholescircle.h"
    //#include "print/p_circlechamfer.h"
    //#include "print/p_climb.h"
    //#include "print/p_conventional.h"
    #include "print/p_ctg.h"
    #include "print/p_draw_image.h"
    #include "print/p_drill.h"
    #include "print/p_follow.h"
    #include "print/p_iss.h"                 //internal spiral surface
    #include "print/p_plane.h"
    #include "print/p_sidepocket.h"
    #include "print/p_text.h"
    //#include "print/p_trochoid.h"            //trochoid
    #include "print/p_trochoidwedge.h"
    //#include "print/p_zikzak.h"
}
else if(token.Matches(_("p*")))
{
    #include "program.h"
}
else if(token.Matches(_("r*")))
{
     if(T.Count()==1 && token.Matches(_("rotate"))) IsNotExtFunc =  !I[iNum].Rotate( calc(T[0]) * DegToRad );
}
//
else if(token.Matches(_("s_*")))
{
    #include "system/s_hide_table.h"
    #include "system/s_load_table.h"
    #include "system/s_nc_prog_path.h"
    #include "system/s_show_table.h"
    #include "system/s_tool_path.h"

    #include "s_getholes.h"
}
else if(token.Matches(_("s*")))
{
    #include "set_echo.h"
    #include "set_image_number.h"
    #include "set_tool_number.h"
}
else if(token.Matches(_("t_*")))
{
    #include "tool/t_load.h"

    #include "tool/t_a.h"
    #include "tool/t_e.h"
    #include "tool/t_c.h"
    #include "tool/t_l.h"

}

else if(token.Matches(_("t*")))
{
    if(token.Matches(_("t"))&&(T.GetCount()==9))IsNotExtFunc = !I[iNum].add(eT(mP(calc(T[0]),calc(T[1]),calc(T[2])),mP(calc(T[3]),calc(T[4]),calc(T[5])),mP(calc(T[6]),calc(T[7]),calc(T[8]))));
    #include "test.h"
    #include "test_tool_offset.h"
    #include "tool.h"
}
else if(token.Matches(_("v*")))
{
    #include "v.h"
    #include "view_fit.h"
}
else if(token.Matches(_("w*")))
{
    #include "while.h"
}

else if(token.Matches(_("z*")))
{

}
